package cn.tedu.sp03.service;

import cn.tedu.entity.User;
import cn.tedu.service.UserService;
import cn.tedu.web.util.JsonUtil;

import com.fasterxml.jackson.core.type.TypeReference;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Service;

import java.util.List;

@Slf4j
@Service
@RefreshScope       //刷新到新的配置，可以重新注入到对象中
public class UserServiceImpl implements UserService {
    // 将用户数据注入到此变量中
    @Value("${sp.user-service.users}")
    private String userJson;
    @Override
    public User getUser(Integer userId) {
        log.info("获取用户， userId={}",userId);
        // userJson --> List<User>
        //自定义的JsonUtil的工具类
        //利用TypeReference的继承语法  注意导fasterXml Jackson的包
        List<User> users=JsonUtil.from(userJson,new TypeReference<List<User>>(){});
        //根据userId遍历寻找对应的user对象
        for (User user : users) {
            if (user.getId().equals(userId)) return user;
        }
        //如果找不到则返回这个
        return new User(userId,"用户名"+userId,"密码"+userId);
    }

    @Override
    public void addScore(Integer userId, Integer score) {
        log.info("增加用户积分， userId={} , 积分值={}",userId,score);

    }
}
